﻿using System;
using AccesoData;
using Entidades;
using NUnit.Framework;

namespace Pruebas.PruebasDao
{
    [TestFixture]
    class PruebaDaoInspeccion: CrearEntidades
    {
        [TestCase]
        public void PruebaAgregarInspeccion()
        {
            Inspeccion inspeccion = FabricaEntidades.ObtenerInspeccion();
            Siniestro siniestro = DatosSiniestro();

            inspeccion.Ajustador = DatosPersonal();
            inspeccion.FechaAsignacion = new DateTime(2000,11,28);
            inspeccion.FechaInspeccion = DateTime.Now;
            inspeccion.FechaEntregaInformeFinal = new DateTime();
            inspeccion.FechaEntregaInformePreliminar = new DateTime();
            inspeccion.FechaRecibidoInformeFinal = new DateTime();
            inspeccion.FechaRecibidoInformePreliminar = new DateTime();

            inspeccion.Id =
                DAO.ObtenerFabrica(1).ObtenerDaoInspeccion().AgregarInspeccion(inspeccion,siniestro);

            Assert.AreNotEqual(-1,inspeccion.Id);

        }

        [TestCase]
        public void PruebaEditarInspeccion()
        {
            Inspeccion inspeccion = FabricaEntidades.ObtenerInspeccion();
            Siniestro siniestro = DatosSiniestro();

            inspeccion.Ajustador = DatosPersonal();
            inspeccion.FechaAsignacion = new DateTime(2000, 11, 28);
            inspeccion.FechaInspeccion = DateTime.Now;
            inspeccion.FechaEntregaInformeFinal = new DateTime();
            inspeccion.FechaEntregaInformePreliminar = new DateTime();
            inspeccion.FechaRecibidoInformeFinal = new DateTime();
            inspeccion.FechaRecibidoInformePreliminar = new DateTime();

            inspeccion.Id =
                DAO.ObtenerFabrica(1).ObtenerDaoInspeccion().AgregarInspeccion(inspeccion, siniestro);

            inspeccion.FechaEntregaInformeFinal = DateTime.Now;
            inspeccion.FechaRecibidoInformePreliminar = DateTime.Now;
            inspeccion.FechaEntregaInformePreliminar = DateTime.Now;
            inspeccion.FechaRecibidoInformeFinal = DateTime.Now;

            bool respuesta = DAO.ObtenerFabrica(1).ObtenerDaoInspeccion().EditarInspeccion(inspeccion);

            Assert.IsTrue(respuesta);
        }

        [TestCase]
        public void PruebaObtenerInspeccion()
        {

            Inspeccion inspeccion = FabricaEntidades.ObtenerInspeccion();
            Siniestro siniestro = DatosSiniestro();

            inspeccion.Ajustador = DatosPersonal();
            inspeccion.FechaAsignacion = new DateTime(2000, 11, 28);
            inspeccion.FechaInspeccion = DateTime.Now;
            inspeccion.FechaEntregaInformeFinal = new DateTime();
            inspeccion.FechaEntregaInformePreliminar = new DateTime();
            inspeccion.FechaRecibidoInformeFinal = new DateTime();
            inspeccion.FechaRecibidoInformePreliminar = new DateTime();

            inspeccion.Id =
                DAO.ObtenerFabrica(1).ObtenerDaoInspeccion().AgregarInspeccion(inspeccion, siniestro);

            Inspeccion prueba =
                DAO.ObtenerFabrica(1).ObtenerDaoInspeccion().ObtenerInspeccionSiniestro(siniestro);

            Assert.IsNotNull(prueba);

            Assert.AreEqual(inspeccion.Ajustador.Id,prueba.Ajustador.Id);
            Assert.AreEqual(inspeccion.FechaAsignacion,prueba.FechaAsignacion);
        }
    }
}
